package com.itheima.pojo;



import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.time.LocalDateTime;
@Data
public class User {
    @NotNull(groups = Update.class)//规定JSON数据映射进来的时候不能为null
    private Integer id;//主键ID
    private String username;//用户名
    @JsonIgnore//返回User的Json数据时忽略掉密码，不能把密码暴露在外面，注意这里注解别引错了，引com.faster的那个
    private String password;//密码

    @NotEmpty//规定JSON数据映射进来的时候不能为null，并且内容不能为空
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;//昵称

    @NotEmpty
    @Email//规定映射进来的JSON数据只能是邮箱格式的
//    @Pattern(regexp = "^[0-9 -]@[a-z -](.[a-z -]+)$")
    private String email;//邮箱
    private String userPic;//用户头像地址
    private String role;
    @JsonFormat(pattern = "yyyy年MM月dd日")
    private LocalDateTime createTime;//创建时间

    @JsonFormat(pattern = "yyyy年MM月dd日")
    private LocalDateTime updateTime;//更新时间

    public interface Add{

    }
    public interface Update{

    }
}
